home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / FWMahnung_2.outrexx < prev    next >
Text File  |  1998-11-16  |  6KB  |  239 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der 2. Mahnung mit Hilfe von FinalWriter
  3. ** $VER: FWMahnung_2.outrexx V1.00 (16.11.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. FWVorlage    = "FWDokumente/Mahnung2.fw";
  12. FWDokument    = "t:Mahnung2.fw";
  13. FWPort        = "FINALW."
  14.  
  15. LF                = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (FWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             FWPort     = FWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "FinalWriter ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original FW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. FWVorlage        = MTR_RESULT || FWVorlage;
  39. ADDRESS COMMAND "copy" FWVorlage FWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  55.     ADDRESS VALUE FWPort;
  56.     SCREENTOFRONT;
  57.  
  58.     CALL DatenAufbereiten;
  59.     SELECT;
  60.         WHEN Druckart = 0 THEN    /* Drucken    */
  61.             DO;
  62.                 ADDRESS VALUE FWPort;
  63.                 PRINT;
  64.                 ADDRESS VALUE ARexxPort;
  65.                 MTSCREENTOFRONT;
  66.             END;
  67.         WHEN Druckart = 1 THEN    /* Vorschau    */
  68.             ADDRESS VALUE ARexxPort;
  69.         WHEN Druckart = 2 THEN    /* Sichern    */
  70.             DO;
  71.                 ADDRESS VALUE FWPort;
  72.                 SAVEAS;
  73.                 ADDRESS VALUE ARexxPort;
  74.                 MTSCREENTOFRONT;
  75.             END;
  76.         OTHERWISE
  77.             DO;
  78.                 ES_TITLE                = "Warnung";
  79.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  80.                 ES_GADGETFORMAT    = "Ok";
  81.                 EASY_REQUEST;
  82.                 Ende_Kennzeichen    = 'J';
  83.             END;
  84.     END;
  85.  
  86.     PRINTFIND;
  87. END;
  88.  
  89. /* WordWorth-Datei aus t: wieder entfernen */
  90. ADDRESS COMMAND "delete" FWDokument;
  91.  
  92. /* Oberfläche wieder entsperren */
  93. ADDRESS VALUE ARexxPort;
  94. FREEGUI;
  95.  
  96. EXIT;
  97.  
  98. DatenAufbereiten:
  99.  
  100.     ADDRESS VALUE ARexxPort;
  101.  
  102.     IF PREFS.NUMBER_DIGITS > 0 THEN
  103.         DO;
  104.             ZW_Rechnung = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
  105.             ZW_Kunde = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  106.         END;
  107.     ELSE
  108.         DO;
  109.             ZW_Rechnung = MTR_RESULT;
  110.             ZW_Kunde = OB.INVOICEE_NUMBER;
  111.         END;
  112.     IF PREFS.CLIENT_CODE = 1 THEN
  113.         ZW_Kunde = OB.INVOICEE.CUSTOMER.CLIENT_CODE;
  114.  
  115.     FORMAT_DATE_LONG date(s);
  116.     PRINTDATE = MTR_RESULT;
  117.  
  118.     FORMAT_DATE_SHORT OB.DATE_BILL;
  119.     BILL_DATE_SHORT = MTR_RESULT;
  120.  
  121.     FORMAT_DATE_SHORT OB.DATE_DUNNING.1;
  122.     DUNNING1_DATE_SHORT = MTR_RESULT;
  123.  
  124.     w = OB.CURRENCY_USED;
  125.     IF w < 2 THEN
  126.         FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.w;
  127.     ELSE
  128.         FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.w;
  129.     ZW_Betrag    = MTR_RESULT;
  130.  
  131.  
  132.     ADDRESS VALUE FWPort;
  133.     CLEARDOC;
  134.     OPEN FWDokument;
  135.  
  136.     DruckString    = OB.OFFICE.ADDRESS.ADDRESS.2 || LF;
  137.     i = INDEX( DruckString, LF);
  138.     IF i > 0 THEN
  139.         DO;
  140.             DruckTeil    = LEFT( DruckString, (i - 1) );
  141.             DruckString = SUBSTR(DruckString, (i + 1) );
  142.             i = INDEX( DruckString, LF);
  143.         END;
  144.     ELSE
  145.         DruckTeil    = DruckString;
  146.     FIND "<OFFICE.ADDRESS.2>";
  147.     FINDNEXT;
  148.     STATUS LinePos;
  149.     PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  150.     TYPE DruckTeil;
  151.     FIND "<PRINTDATE>"
  152.     TYPE PRINTDATE;
  153.  
  154.     DO WHILE( i > 0 );
  155.         DruckTeil    = LEFT( DruckString, (i - 1) );
  156.         DruckString = SUBSTR(DruckString, (i + 1) );
  157.         BegLine        = BegLine + 1;
  158.         MoveToLine BegLine 0;
  159.         TYPE DruckTeil;
  160.         i = INDEX( DruckString, LF);
  161.     END;
  162.  
  163.     FIND "<OFFICE.ADDRESS.ADDRESS.0>";
  164.     TYPE OB.OFFICE.ADDRESS.ADDRESS.0;
  165.  
  166.     DruckString    = OB.INVOICEE.CUSTOMER.ADDRESS.ADDRESS.2 || LF;
  167.     i = INDEX( DruckString, LF);
  168.     IF i > 0 THEN
  169.         DO;
  170.             DruckTeil    = LEFT( DruckString, (i - 1) );
  171.             DruckString = SUBSTR(DruckString, (i + 1) );
  172.             i = INDEX( DruckString, LF);
  173.         END;
  174.     ELSE
  175.         DruckTeil    = DruckString;
  176.     FIND "<CUSTOMER.ADDRESS.ADDRESS.2>";
  177.     STATUS LinePos;
  178.     PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  179.     TYPE DruckTeil;
  180.     DO WHILE( i > 0 );
  181.         DruckTeil    = LEFT( DruckString, (i - 1) );
  182.         DruckString = SUBSTR(DruckString, (i + 1) );
  183.         BegLine        = BegLine + 1;
  184.         MoveToLine BegLine 0;
  185.         TYPE DruckTeil;
  186.         i = INDEX( DruckString, LF);
  187.     END;
  188.  
  189.     FIND "<OB.INVOICEE_NUMBER>";
  190.     TYPE ZW_Kunde;
  191.  
  192.     FIND "<OB.NUMBER>";
  193.     TYPE ZW_Rechnung;
  194.     FINDNEXT;
  195.     TYPE ZW_Rechnung;
  196.     MoveToLine 1 1;
  197.  
  198.     FIND "<OB.DATE_BILL>";
  199.     TYPE BILL_DATE_SHORT;
  200.     FINDNEXT;
  201.     TYPE BILL_DATE_SHORT;
  202.     MoveToLine 1 1;
  203.  
  204.     SELECT;
  205.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 0 THEN
  206.             DruckString = "Sehr geehrte Damen und Herren,";
  207.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 1 THEN
  208.             DruckString = "Sehr geehrtes Fräulein " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  209.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 2 THEN
  210.             DruckString = "Sehr geehrter Frau " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  211.         WHEN OB.INVOICEE.CUSTOMER.ADDRESS.SALUTATION = 3 THEN
  212.             DruckString = "Sehr geehrter Herr " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  213.         OTHERWISE
  214.             DruckString = "Sehr geehrter Familie " || OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ",";
  215.     END;
  216.     FIND "<CUSTOMER.ADDRESS.SALUTATION>"
  217.     TYPE DruckString;
  218.  
  219.     FIND "<OB.DATE_DUNNING.1>";
  220.     TYPE DUNNING1_DATE_SHORT;
  221.  
  222.     FIND "<OB.TOTAL_M_ALL_CH>";
  223.     TYPE ZW_Betrag;
  224.  
  225.     FIND "<OB.OFFICE.ADDRESS.BANK_NAME>";
  226.     TYPE OB.OFFICE.ADDRESS.BANK_NAME;
  227.  
  228.     FIND "<OB.OFFICE.ADDRESS.BANK_CODE_NUMBER>";
  229.     TYPE OB.OFFICE.ADDRESS.BANK_CODE_NUMBER;
  230.  
  231.     FIND "<OB.OFFICE.ADDRESS.ACCOUNT>";
  232.     TYPE OB.OFFICE.ADDRESS.ACCOUNT;
  233.  
  234.     FIND "<OFFICE.SUR_PRENAME>"
  235.     TYPE (OB.EMPLOYEE.ADDRESS.PRENAME OB.EMPLOYEE.ADDRESS.SURNAME);
  236.  
  237. RETURN;
  238.  
  239.